package org.cnc.explain.aop;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * org.cnc.spring.explain.aop - ParamCheck
 *
 * @author tony-is-coding
 * @date 2022/7/17 17:12
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MethodCheck {

	/**
	 * 检查类型
	 */
	CheckType checkType() default CheckType.CHECK_FOR_PARAM;


	enum CheckType {
		/**
		 * 检查方法参数
		 */
		CHECK_FOR_PARAM,
		/**
		 * 检查函数名称
		 */
		CHECK_FOR_METHOD_NAME
	}
}
